import com.sun.xml.internal.bind.v2.model.annotation.Quick;

import java.util.Arrays;
import java.util.Queue;
import java.util.Random;
public class Test {
    public static void main(String[] args) {
        int[] array = new int[]{13,5,48,49,6,0,1,3,15,31};
//        Sort.insertSort(array);
//        Sort.shellSort(array);
//        Sort.selectSort(array);
//        Sort.heapSort(array);
//        Sort.bubbleSort(array);
//        Sort.quickSortRecursion(array);
//        Sort.quickSortRecursionOptimize(array);
//        Sort.quickSortRecursionInsertOptimize(array);
//        Sort.mergeSort(array);
        Sort.mergeSortIteration(array);
        for(int x:array) {
            System.out.print(x+" ");
        }
//        Random rand = new Random();
//        int[] array = new int[100_0000];
//        for(int i = 0; i < array.length; i++) {
//            array[i] = rand.nextInt(1000);
//        }
//        Sort.testSpeed1(array);
//        Sort.testSpeed2(array);


    }
    public static void main1(String[] args) {
//        int[] array = new int[]{21,1,4,65,9,0,66,444,15,17,45,78,3478};
//        MergeSort.mergeSortDemo(array);
//        for(int x: array) {
//            System.out.print(x+" ");
//        }

        //测试归并排序递归和非递归实现的具体时间差别
//        Random rand = new Random();
//        int[] testArray = new int[1_000000];
//        for(int i = 0; i < testArray.length; i++) {
//            testArray[i] = rand.nextInt(1000);
//        }
//        Arrays.fill(testArray,7);
//        MergeSort.testRecursion(testArray);
//        MergeSort.testIteration(testArray);
        /**
         * 结论:
         *  经过大量数据比较
         *  归并排序的递归实现排序时间要长于迭代实现*/
    }
}
